diffeq_vode Module



Variables

Type Visibility Attributes Name Initial
integer(kind=int32), public, parameter :: VODE_ADAMS_METHOD = 10

Describes the VODE Adams method solver.

integer(kind=int32), public, parameter :: VODE_BDF_METHOD = 21

Describes the VODE BDF method solver.


Derived Types

type, public, extends(vode) ::  adams

Defines an Adams method solver implemented by VODE.

Type-Bound Procedures

procedure, public :: append_to_buffer => oi_append_to_buffer ..\..\

Appends the supplied solution point to the internal solution buffer.<\p>

procedure, public :: clear_buffer => oi_clear_buffer ..\..\

Clears the contents of the buffer.<\p>

procedure, public :: compute_error_norm => oi_estimate_error ..\..\

Computes the norm of the scaled error estimate.<\p>

procedure, public :: estimate_inital_step_size => oi_initial_step ..\..\

Computes an estimate of an initial step size.<\p>

procedure, public :: estimate_next_step_size => oi_next_step ..\..\

Estimates the next step size.<\p>

procedure, public :: get_absolute_tolerance => oi_get_abs_tol ..\..\

Gets the absolute error tolerance.<\p>

procedure, public :: get_allow_overshoot => oi_get_allow_overshoot ..\..\

Gets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: get_maximum_step_size => oi_get_max_step ..\..\

Gets the magnitude of the maximum allowed step size.<\p>

procedure, public :: get_method => adams_method_inquiry
procedure, public :: get_minimum_step_size => oi_get_min_step ..\..\

Gets the magnitude of the minimum allowed step size.<\p>

procedure, public :: get_order => vode_order_inquiry
procedure, public :: get_relative_tolerance => oi_get_abs_tol ..\..\

Gets the relative error tolerance.<\p>

procedure, public :: get_solution => oi_get_solution ..\..\

Returns the solution computed by the integrator.<\p>

procedure, public :: get_step_limit => oi_get_step_limit ..\..\

Gets the limit on the number of integration steps.<\p>

procedure, public :: get_step_size_control_parameter => oi_get_control_parameter ..\..\

Gets the step size PI control parameter.<\p>

procedure, public :: get_step_size_factor => oi_get_safety_factor ..\..\

Gets the step size safety factor.<\p>

procedure, public :: set_absolute_tolerance => oi_set_abs_tol ..\..\

Sets the absolute error tolerance.<\p>

procedure, public :: set_allow_overshoot => oi_set_allow_overshoot ..\..\

Sets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: set_maximum_step_size => oi_set_max_step ..\..\

Sets the magnitude of the maximum allowed step size.<\p>

procedure, public :: set_minimum_step_size => oi_set_min_step ..\..\

Sets the magnitude of the minimum allowed step size.<\p>

procedure, public :: set_relative_tolerance => oi_set_abs_tol ..\..\

Sets the relative error tolerance.<\p>

procedure, public :: set_step_limit => oi_set_step_limit ..\..\

Sets the limit on the number of integration steps.<\p>

procedure, public :: set_step_size_control_parameter => oi_set_control_parameter ..\..\

Sets the step size PI control parameter.<\p>

procedure, public :: set_step_size_factor => oi_set_safety_factor ..\..\

Sets the step size safety factor.<\p>

procedure, public :: solve => vode_solve

type, public, extends(vode) ::  bdf

Defines a BDF solver implemented by VODE.

Type-Bound Procedures

procedure, public :: append_to_buffer => oi_append_to_buffer ..\..\

Appends the supplied solution point to the internal solution buffer.<\p>

procedure, public :: clear_buffer => oi_clear_buffer ..\..\

Clears the contents of the buffer.<\p>

procedure, public :: compute_error_norm => oi_estimate_error ..\..\

Computes the norm of the scaled error estimate.<\p>

procedure, public :: estimate_inital_step_size => oi_initial_step ..\..\

Computes an estimate of an initial step size.<\p>

procedure, public :: estimate_next_step_size => oi_next_step ..\..\

Estimates the next step size.<\p>

procedure, public :: get_absolute_tolerance => oi_get_abs_tol ..\..\

Gets the absolute error tolerance.<\p>

procedure, public :: get_allow_overshoot => oi_get_allow_overshoot ..\..\

Gets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: get_maximum_step_size => oi_get_max_step ..\..\

Gets the magnitude of the maximum allowed step size.<\p>

procedure, public :: get_method => bdf_method_inquiry
procedure, public :: get_minimum_step_size => oi_get_min_step ..\..\

Gets the magnitude of the minimum allowed step size.<\p>

procedure, public :: get_order => vode_order_inquiry
procedure, public :: get_relative_tolerance => oi_get_abs_tol ..\..\

Gets the relative error tolerance.<\p>

procedure, public :: get_solution => oi_get_solution ..\..\

Returns the solution computed by the integrator.<\p>

procedure, public :: get_step_limit => oi_get_step_limit ..\..\

Gets the limit on the number of integration steps.<\p>

procedure, public :: get_step_size_control_parameter => oi_get_control_parameter ..\..\

Gets the step size PI control parameter.<\p>

procedure, public :: get_step_size_factor => oi_get_safety_factor ..\..\

Gets the step size safety factor.<\p>

procedure, public :: set_absolute_tolerance => oi_set_abs_tol ..\..\

Sets the absolute error tolerance.<\p>

procedure, public :: set_allow_overshoot => oi_set_allow_overshoot ..\..\

Sets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: set_maximum_step_size => oi_set_max_step ..\..\

Sets the magnitude of the maximum allowed step size.<\p>

procedure, public :: set_minimum_step_size => oi_set_min_step ..\..\

Sets the magnitude of the minimum allowed step size.<\p>

procedure, public :: set_relative_tolerance => oi_set_abs_tol ..\..\

Sets the relative error tolerance.<\p>

procedure, public :: set_step_limit => oi_set_step_limit ..\..\

Sets the limit on the number of integration steps.<\p>

procedure, public :: set_step_size_control_parameter => oi_set_control_parameter ..\..\

Sets the step size PI control parameter.<\p>

procedure, public :: set_step_size_factor => oi_set_safety_factor ..\..\

Sets the step size safety factor.<\p>

procedure, public :: solve => vode_solve

type, public, extends(ode_integrator) ::  vode

This type encpsulats the VODE variable coefficient backward difference code or Adams method.

Type-Bound Procedures

procedure, public :: append_to_buffer => oi_append_to_buffer ..\..\

Appends the supplied solution point to the internal solution buffer.<\p>

procedure, public :: clear_buffer => oi_clear_buffer ..\..\

Clears the contents of the buffer.<\p>

procedure, public :: compute_error_norm => oi_estimate_error ..\..\

Computes the norm of the scaled error estimate.<\p>

procedure, public :: estimate_inital_step_size => oi_initial_step ..\..\

Computes an estimate of an initial step size.<\p>

procedure, public :: estimate_next_step_size => oi_next_step ..\..\

Estimates the next step size.<\p>

procedure, public :: get_absolute_tolerance => oi_get_abs_tol ..\..\

Gets the absolute error tolerance.<\p>

procedure, public :: get_allow_overshoot => oi_get_allow_overshoot ..\..\

Gets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: get_maximum_step_size => oi_get_max_step ..\..\

Gets the magnitude of the maximum allowed step size.<\p>

procedure(vode_integer_inquiry), public, deferred :: get_method
procedure, public :: get_minimum_step_size => oi_get_min_step ..\..\

Gets the magnitude of the minimum allowed step size.<\p>

procedure, public :: get_order => vode_order_inquiry
procedure, public :: get_relative_tolerance => oi_get_abs_tol ..\..\

Gets the relative error tolerance.<\p>

procedure, public :: get_solution => oi_get_solution ..\..\

Returns the solution computed by the integrator.<\p>

procedure, public :: get_step_limit => oi_get_step_limit ..\..\

Gets the limit on the number of integration steps.<\p>

procedure, public :: get_step_size_control_parameter => oi_get_control_parameter ..\..\

Gets the step size PI control parameter.<\p>

procedure, public :: get_step_size_factor => oi_get_safety_factor ..\..\

Gets the step size safety factor.<\p>

procedure, public :: set_absolute_tolerance => oi_set_abs_tol ..\..\

Sets the absolute error tolerance.<\p>

procedure, public :: set_allow_overshoot => oi_set_allow_overshoot ..\..\

Sets a value determining if the solver is allowed to overshoot the final value in the integration range.<\p>

procedure, public :: set_maximum_step_size => oi_set_max_step ..\..\

Sets the magnitude of the maximum allowed step size.<\p>

procedure, public :: set_minimum_step_size => oi_set_min_step ..\..\

Sets the magnitude of the minimum allowed step size.<\p>

procedure, public :: set_relative_tolerance => oi_set_abs_tol ..\..\

Sets the relative error tolerance.<\p>

procedure, public :: set_step_limit => oi_set_step_limit ..\..\

Sets the limit on the number of integration steps.<\p>

procedure, public :: set_step_size_control_parameter => oi_set_control_parameter ..\..\

Sets the step size PI control parameter.<\p>

procedure, public :: set_step_size_factor => oi_set_safety_factor ..\..\

Sets the step size safety factor.<\p>

procedure, public :: solve => vode_solve